package com.zsrt.java.day20170109.lh.daily.demo01;

import java.util.ArrayList;
import java.util.Collection;
import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Vector;

import org.junit.Test;



/**
 * 正常使用List的缺点
 * 
 * 1.有编译的警告（不是错误，也是说不做任何处理可以得到正确的结果）
 * 2.正常情况下 我们加的元素一般来说都是同类型的
 * 3.拿出来的东西默认是Object
 * 4.如果解决：
 * 		使用泛型
 * 			
 * 			泛型：指定一个具体的范围。指定一个具体的类型(不符合条件的不要)。
 * 
 * 
 * 		语法：<具体的类型>  类型：类 接口 
 * 
 * @author My
 *
 */
public class LinkedListTest {
	
	@Test
	public void findAll() throws Exception {
		
		//1.创建这个类的对象ArrayList？调用构造方法 泛型
		//ArrayList长度默认为10
		List<String> array=new ArrayList<String>();
		
		array.add("咖啡猫a");
		array.add("咖啡猫b");
		array.add("哮天犬");
		
		for(String st:array){
			System.out.println(st);
			
		}
		
		Iterator<String> itre=array.iterator();
		while(itre.hasNext()){
			String st = itre.next();
			System.out.println(st);
		}
		
		for(int i=0;i<array.size();i++){
			System.out.println(array.get(i));
		}
		
		
		
		
		
		
		
	}
	
	
	
	@Test
	public void add() throws Exception {
		
		//1.创建这个类的对象ArrayList？调用构造方法 泛型
		//ArrayList长度默认为10
		Collection array=new LinkedList();
		
		array.add("咖啡猫a");
		array.add("咖啡猫b");
		array.add("哮天犬");
		array.add("手机");
		
		
		
		int size=array.size();
		System.out.println(size);
		
		//删除一个元素
		array.remove("手机");
		
		Iterator it=array.iterator();
		
		
		//hasNext如果下面还有元素 返回真 如果下面没有元素 返回false
		while(it.hasNext()){
			
			//如果父类转化成子类，需要强制转化
			String obj=(String)it.next();
			System.out.println(obj);
		}
		
	}
	
	
	
	
	
	
	
	
	
	
	
	@Test
	public void add1() throws Exception {
		
		//1.创建这个类的对象ArrayList？调用构造方法 泛型
		//ArrayList长度默认为10
		Collection array=new LinkedList();
		
		array.add("咖啡猫a");
		array.add("咖啡猫b");
		array.add("哮天犬");
		array.add("手机");
		
		
		
		int size=array.size();
		System.out.println(size);
		
		//删除一个元素
		array.remove("手机");
		
		Iterator it=array.iterator();
		
		
		//hasNext如果下面还有元素 返回真 如果下面没有元素 返回false
		while(it.hasNext()){
			
			//如果父类转化成子类，需要强制转化
			String obj=(String)it.next();
			System.out.println(obj);
		}
		
	}
	@Test
	public void adda() throws Exception {
		
		//1.创建这个类的对象ArrayList？调用构造方法 泛型
		//ArrayList长度默认为10
		Collection array=new Vector();
		
		array.add("咖啡猫a");
		array.add("咖啡猫b");
		array.add("哮天犬");
		array.add("手机");
		
		
		
		int size=array.size();
		System.out.println(size);
		
		//删除一个元素
		array.remove("手机");
		
		Iterator it=array.iterator();
		
		
		//hasNext如果下面还有元素 返回真 如果下面没有元素 返回false
		while(it.hasNext()){
			
			//如果父类转化成子类，需要强制转化
			String obj=(String)it.next();
			System.out.println(obj);
		}
		
	}

}
